/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package desarrollosoft.ghce.vista.implementaciones;

import desarrollosoft.ghce.entidades.Paciente;
import desarrollosoft.ghce.vista.interfaces.Cambiable;
import java.util.HashMap;
import java.util.Map;
import org.zkoss.zk.ui.Execution;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Label;
import org.zkoss.zul.Tabpanel;
import org.zkoss.zul.Window;

/**
 *
 * @author ariel
 */
public class ControladoraHistoriaClinica extends SelectorComposer<Window> {

    private Cambiable cambiable;
    
    private Paciente pacienteElegido;
    
    @Wire
    private Label labelDatosPaciente;
    
    @Wire
    private Tabpanel tabpanelAntecedentes;
    
    @Wire
    private Tabpanel tabpanelHistorial;
    
    @Override
    public void doAfterCompose(Window comp) throws Exception {
        hacerAntesDeDibujar();
        super.doAfterCompose(comp);
        hacerDespuesDeDibujar();
    }
    
    private void hacerAntesDeDibujar() {
        Execution ejecucion = Executions.getCurrent();
        cambiable = (Cambiable) ejecucion.getArg().get("controladoraPrincipal");
        pacienteElegido = (Paciente) ejecucion.getArg().get("pacienteElegido");
    }
    
    private void hacerDespuesDeDibujar() {
        Long id = pacienteElegido.getId();
        String apellidos = pacienteElegido.getApellidos();
        String nombres = pacienteElegido.getNombres();
        int edad = pacienteElegido.getEdad();
        String sexo = pacienteElegido.getSexo().getNombre();
        
        String cadena;
        cadena = "Historia clinica N° " + id + ", Paciente: " + apellidos
                + ", " + nombres + ", Edad: " + edad + ", Sexo: " + sexo;
        
        labelDatosPaciente.setValue(cadena);
        
        tabpanelAntecedentes.appendChild(crearVentanaAntecedentes());
        tabpanelHistorial.appendChild(crearVentanaHistorial());
    }
    
    private Window crearVentanaAntecedentes() {
        Map<String,Object> argumentos = new HashMap<>();
        argumentos.put("controladoraPrincipal", cambiable);
        argumentos.put("pacienteElegido", pacienteElegido);
        return (Window) Executions.createComponents("Antecedentes.zul", null, argumentos);
    }
    
    private Window crearVentanaHistorial() {
        Map<String,Object> argumentos = new HashMap<>();
        argumentos.put("controladoraPrincipal", cambiable);
        argumentos.put("pacienteElegido", pacienteElegido);
        return (Window) Executions.createComponents("Historial.zul", null, argumentos);
    }
}
